#include "log.h"
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>


char* filepath = "log.txt";


void logMessage (char *nombre, int32_t pid, int32_t tid, int32_t codigoLog, char *dato)
{

	struct timeval tv; //PARA MILISEGUNDOS
	char fechayhora[80];
	char conversion[25];

	FILE *log = fopen(filepath, "a");

	//CALCULO HORA CON EL FORMATO APROPIADO
	time_t hora = time (NULL);
	struct tm *tmPtr = localtime(&hora);
	strftime( fechayhora, 80, "%H:%M:%S", tmPtr );
	gettimeofday(&tv, NULL); //calcula la hora en ms
	strcat(fechayhora, ".");
	sprintf(conversion, "%ld", tv.tv_usec);
	strncat(fechayhora, conversion, 3);

	char linea[255];

	const char *vTipoLog[]={
		"INFO",					// 0
		"WARN",					// 1
		"ERROR",				// 2
		"DEBUG"					// 3
		};



	strcpy(linea,"[");
	strcat(linea, fechayhora);
	strcat(linea,"][");
	strcat(linea,nombre);
	strcat(linea,"][");
	sprintf(conversion, "%d", pid);
	strcat(linea,conversion);
	strcat(linea,"][");
	sprintf(conversion, "%d", tid);
	strcat(linea,conversion);
	strcat(linea,"]: ");
	strcat(linea, vTipoLog[codigoLog]);
	strcat(linea," : ");
	strcat(linea, dato);
	strcat(linea, "\r\n");
	fputs(linea,  log );
	fclose (log);
}
